Technical Field
The present invention relates generally to scheduling and more particularly, but not by way of limitation, to systems and methods for controlled sharing of consumable resources in a computer cluster.
History of Related Art
A multi-tenant computer cluster such as, for example, a Software as a Service (SaaS) cloud, often uses computing resources (e.g., hardware and software resources) to perform services for customers. The computing resources can include, for example, computers (e.g., physical computers or virtual machines (VMs)), raw (block) and file-based storage, firewalls, load balancers, internet protocol (IP) addresses, virtual local area networks (VLANs), software bundles, and computing platforms that typically include an operating system, a programming-language execution environment, a database, and a web server. Services generally involve use of at least a portion of the computing resources for the benefit of the customer. The services can include, for example, emergency notification, accounting, collaboration, customer relationship management (CRM), management information systems (MIS), enterprise resource planning (ERP), invoicing, human resource management (HRM), content management (CM), service-desk management, and/or many other services.
Oftentimes, the multi-tenant computer cluster receives customer requests for service randomly responsive to needs that arise unpredictably. In addition, the customer requests for service frequently spawn other requests for service. Therefore, all requests are traditionally managed in a queue and serviced in a first-in first-out (FIFO) manner. As the queue becomes backlogged, the FIFO manner of servicing results in an unequal distribution of the computing resources across customers. Because the requests are serviced sequentially, customers with more requests are awarded a greater share of the computing resources than customers with fewer requests. The distribution of the computing resources across all customers is not generally controllable.
Moreover, as the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.